# -*- coding:utf-8 -*-
# @Desc : 
# @Author : Administrator
# @Date : 2019-07-02 15:19


# 浅拷贝: 是指在复制过程中只复制一层变量，不会复制深层变量绑定的对象的复制过程
L = [3.1, 3.2]
L1 = [1, 2, L]
L2 = L1.copy()  # 等同于 L1[:]  浅拷贝  ---> 此时L1与L2共同指向L
print(L1)  # [1, 2, [3.1, 3.2]]
print(L2)  # [1, 2, [3.1, 3.2]]

L2[2][0] = 3.14
print(L1)  # [1, 2, [3.14, 3.2]]
print(L2)  # [1, 2, [3.14, 3.2]]


# 深拷贝: import copy ---> copy.deepcopy()
# 注: 深拷贝通常只对可变对象进行复制，不可变对象通常不变
import copy  # 导入copy模块
L = [3.1, 3.2]
L1 = [1, 2, L]
L2 = copy.deepcopy(L1) # 深拷贝   ---> 此时L1与L2指向不同的[3.1, 3.2]
print(L1)  # [1, 2, [3.1, 3.2]]
print(L2)  # [1, 2, [3.1, 3.2]]

L2[2][0] = 3.14
print(L1)  # [1, 2, [3.1, 3.2]]
print(L2)  # [1, 2, [3.14, 3.2]]

